package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.Drtypemode;
import com.ruoyi.system.domain.Qstag;
import com.ruoyi.system.domain.Reg;
import org.apache.ibatis.annotations.Param;

/**
 * 属性变量管理Mapper接口
 * 
 * @author yaozh
 * @date 2024-03-01
 */
public interface RegMapper 
{
    List<Reg> findAllReg(@Param("dbName") String dbName);

    List<Reg> findAllByIsEnergy(@Param("dbName")String dbName, @Param("isenergy")String isenergy);

    int updateIsThreeDShowByRegIdList(@Param("dbName") String dbName, @Param("subRegIdList") List<Long> subRegIdList, @Param("isShow") Integer isShow);

    int deleteObjectByDrIdAndRegName(@Param("dbName") String dbName, @Param("drId") Long drId, @Param("regName") String regName);
    List<Reg> findRegByTagName(@Param("dbName") String dbName, @Param("tagName") String tagName);

    Reg findRegByDrIdAndRegName(@Param("dbName") String dbName, @Param("drId") Long drId,@Param("regName") String regName);

    int updateTagNameByRegId(@Param("dbName") String dbName, @Param("reg") Reg reg);

    int updateIsThreeDShowByDrIdAndRegName(@Param("dbName") String dbName, @Param("drId") Long drId, @Param("regName") String regName, @Param("isShow") Integer isShow);

    List<String> findAllRegNameByDrId(@Param("dbName") String dbName, @Param("drId") Long drId);

    /**
     * 更新变量
     * @param dBname
     * @param reg
     * @return
     */
    int updateObject(@Param(value="dBname") String dBname, @Param(value="reg") Reg reg);

    /**
     * 根据dBname（项目）、设备ID、设备类型模板列表 保存到变量
     * @param dBname
     * @param drid
     * @param drtypemodes
     * @return
     */
    int insertObjectByDrtypemodes(@Param("dBname") String dBname,@Param("drid") Long drid, @Param("drtypemodes") List<Drtypemode> drtypemodes);

    /**
     * 查询属性变量管理
     * 
     * @param regId 属性变量管理主键
     * @return 属性变量管理
     */
    public Reg selectRegByRegId(@Param("regId") Long regId, @Param("dbName") String dbName);

    public Reg selectRegByDrIdAndRegName(@Param("drId") Long drId, @Param("regName") String regName, @Param("dbName") String dbName);

    /**
     * 查询属性变量管理列表
     * 
     * @param reg 属性变量管理
     * @return 属性变量管理集合
     */
    public List<Reg> selectRegList(@Param("reg") Reg reg, @Param("dbName") String dbName);

    public List<Reg> selectRegListByDrIds(@Param("reg") Reg reg, @Param("drIds") Long[] drIds, @Param("dbName") String dbName);

    /**
     * 新增属性变量管理
     * 
     * @param reg 属性变量管理
     * @return 结果
     */
    public int insertReg(@Param("reg") Reg reg, @Param("dbName") String dbName);

    /**
     * 修改属性变量管理
     * 
     * @param reg 属性变量管理
     * @return 结果
     */
    public int updateReg(@Param("reg") Reg reg, @Param("dbName") String dbName);

    /**
     * 删除属性变量管理
     * 
     * @param regId 属性变量管理主键
     * @return 结果
     */
    public int deleteRegByRegId(@Param("regId") Long regId, @Param("dbName") String dbName);

    /**
     * 批量删除属性变量管理
     * 
     * @param regIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRegByRegIds(@Param("regIds") Long[] regIds, @Param("dbName") String dbName);

    public int updateRegAlarmByTagName(@Param("tagName") String tagName, @Param("isAlarm") String isAlarm, @Param("alarmLevel") String alarmLevel, @Param("dbName") String dbName);

}
